package com.easyaop.api;

import com.easyaop.api.pointcut.Pointcut;
import com.easyaop.api.around.Around;

import java.lang.reflect.Method;

public interface Arounds {
    void add(String expression, Around around);

    void add(Method method, Around around);

    void add(Pointcut pointcut, Around around);

    /**
     * @param expression  表达式
     * @param aroundTypes aroundTypes为空清空该切点所有Around,不为空删除特定
     */
    boolean remove(String expression, Class<? extends Around>... aroundTypes);

    boolean remove(Method method, Class<? extends Around>... aroundTypes);
}
